<?xml version='1.0' encoding='ISO-8859-1' ?>
<ui:composition template="/templates/padrao.xhtml"
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:h="http://java.sun.com/jsf/html"
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:p="http://primefaces.org/ui">

	<ui:define name="centro">
		<p:growl id="msg" showDetail="true" life="5000" />

        <h:form id="formPrincipal" prependId="false" onLoad="reset()">
			<p:dataTable id="datatablePartida" 
				var="partida"
				styleClass="userDataTableStyle"
				value="#{partidaMB.partidas}"
				paginator="true"
				rows="10"
				paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
				rowsPerPageTemplate="5,10,15" >
				
				<f:facet name="header" >
					#{msg.partidaTitulo}
				</f:facet>
				
                <p:column headerText="#{msg.partidaNome}">
                     #{partida.nome}
                </p:column>
                
                <p:column headerText="#{msg.partidaData}">
	                <h:outputText value="#{partida.data}">
					  <f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
					</h:outputText>
                     
                </p:column>
                
                <p:column headerText="#{msg.partidaLiga}">
                     #{partida.liga.nome}
                </p:column>
                
                <p:column headerText="#{msg.partidaJogo}">
                     #{partida.jogo.nome}
                </p:column>
                
                <p:column headerText="#{msg.partidaJogador1}">
                     #{partida.jogador1.apelido}
                </p:column>
                
                <p:column headerText="#{msg.partidaJogador2}">
                     #{partida.jogador2.apelido}
                </p:column>
                
                <p:column headerText="#{msg.partidaJogador1pts}">
                     #{partida.pontos_jogador1}
                </p:column>
                
                <p:column headerText="#{msg.partidaJogador2pts}">
                     #{partida.pontos_jogador2}
                </p:column>   
				<p:column headerText="#{msg.partidaManutencao}" style="width:10%">
		        	<p:toolbar id="editaToolBar">
				        <p:toolbarGroup align="center" >
						    <p:commandButton id="btnDetalhe" title="#{msg.partidaDetalhe}"
						    				icon="ui-icon-search"
						    				oncomplete="partidaDetalheDlg.show()" 
						    				update=":display">
						    	<f:setPropertyActionListener value="#{partida}" target="#{partidaMB.partida}" />
							</p:commandButton>

							<p:commandButton id="btnAlterar" title="#{msg.partidaAlterar}" 
											icon="ui-icon-pencil"
											oncomplete="alterarDlg.show()" 
											update=":formAlterar:apresentaAlterarPartida" >
								<f:setPropertyActionListener value="#{partida}" target="#{partidaMB.partida}" />
							</p:commandButton>
							  
							<p:commandButton id="btnExcluir" title="#{msg.partidaExcluir}" 
											icon="ui-icon-trash" 
											oncomplete="confirmacaoExcluir.show()" 
											update=":partidaDisplay" >
								<f:setPropertyActionListener value="#{partida}" target="#{partidaMB.partida}" />
							</p:commandButton>
						</p:toolbarGroup>
					</p:toolbar>
				</p:column>
				
				<f:facet name="footer">
					<p:commandButton value="#{msg.partidaNova}" 
									icon="ui-icon-document"
									actionListener="#{partidaMB.prepararAdicionarPartida}"
									oncomplete="incluirDlg.show();" 
									update=":formIncluir:apresentaIncluirPartida" />
				</f:facet>
			</p:dataTable>
		</h:form>

		<p:dialog header="#{msg.partidaPDetalhe}" widgetVar="partidaDetalheDlg" resizable="false" id="partidaDlg" showEffect="fade" hideEffect="explode" appendToBody="true" modal="true" >
	        <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">	            	            	            
	            <h:outputText value="#{msg.partidaNome}" /> 
	               <h:outputText value="#{partidaMB.partida.nome}" style="font-weight:bold"/>              
                	            
                <h:outputText value="#{msg.partidaData}"/>
                <h:outputText value="#{partidaMB.partida.data}" style="font-weight:bold">
                	<f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
                </h:outputText>
                                   
                <h:outputText value="#{msg.partidaLiga}"/>
                	<h:outputText value="#{partidaMB.partida.liga.nome}" style="font-weight:bold"/> 
                                 
                <h:outputText value="#{msg.partidaJogo}"/>
                	<h:outputText value="#{partidaMB.partida.jogo.nome}" style="font-weight:bold"/>
                                  
                <h:outputText value="#{msg.partidaJogador1}"/>
                	<h:outputText value="#{partidaMB.partida.jogador1.apelido}" style="font-weight:bold"/>
                                                
                <h:outputText value="#{msg.partidaJogador2}"/>
                	<h:outputText value="#{partidaMB.partida.jogador2.apelido}" style="font-weight:bold"/>
                                    
                <h:outputText value="#{msg.partidaJogador1pts}"/>
                	<h:outputText value="#{partidaMB.partida.pontos_jogador1}" style="font-weight:bold"/>
                                                   
                <h:outputText value="#{msg.partidaJogador2pts}"/>
                	<h:outputText value="#{partidaMB.partida.pontos_jogador2}" style="font-weight:bold"/>                	                           
	        </h:panelGrid>
	    </p:dialog>

		<p:dialog id="incluir" header="#{msg.partidaIncluir}" widgetVar="incluirDlg" showEffect="slide" appendToBody="true" modal="true" >
			<h:form id="formIncluir" prependId="false">
				<h:panelGrid id="apresentaIncluirPartida" columns="2" cellpadding="5">
					<h:outputLabel for="nomeI" value="#{msg.partidaNome}: " />
					<h:inputText id="nomeI" value="#{partidaMB.partida.nome}" size="35" 
					required="true" requiredMessage="#{msg.partidaNomeReq}"/>
					
					<h:outputLabel for="dataI" value="#{msg.partidaData}: " />
					<p:calendar pattern="dd-MM-yyyy" id="dataI" value="#{partidaMB.partida.data}" 
					required="true" requiredMessage="#{msg.partidaDataReq}"/> 
					
					<h:outputLabel for="ligaI" value="#{msg.partidaLiga}: "/>
					<h:selectOneMenu id="ligaI" value="#{partidaMB.ligaSelecionado}" 
					required="true" requiredMessage="#{msg.partidaLigaReq}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaLiga}" />
		                <f:ajax listener="#{partidaMB.getListaJogo}" render="jogoI" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="jogoI" value="#{msg.partidaJogo}: " />
					<h:selectOneMenu id="jogoI" value="#{partidaMB.jogoSelecionado}" 
					required="true" requiredMessage="#{msg.partidaJogoReq}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogo}" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="jogador1I" value="#{msg.partidaJogador1}: " />
					<h:selectOneMenu id="jogador1I" value="#{partidaMB.jogador_1Selecionado}" 
					required="true" requiredMessage="#{msg.partidaJ1Req}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogador1}" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="jogador2I" value="#{msg.partidaJogador2}: " />
					<h:selectOneMenu id="jogador2I" value="#{partidaMB.jogador_2Selecionado}" 
					required="true" requiredMessage="#{msg.partidaJ2Req}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogador2}" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="pontos1I" value="#{msg.partidaJogador1pts}: " />
					<h:inputText id="pontos1I" value="#{partidaMB.partida.pontos_jogador1}" size="35" />
					
					<h:outputLabel for="pontos2I" value="#{msg.partidaJogador2pts}: " />
					<h:inputText id="pontos2I" value="#{partidaMB.partida.pontos_jogador2}" size="35" />
				</h:panelGrid>
				
				<br />
				<div align="center">
				<p:commandButton value="#{msg.partidaIncluir}" style="float: center;"
								oncomplete="handleSubmitRequest(xhr, status, args, 'incluirDialogo', 'formIncluir');"
								icon="ui-icon-document"
								actionListener="#{partidaMB.adicionarPartida}"
								update=":formPrincipal:datatablePartida, :msg" />
				</div>
			</h:form>									
		</p:dialog>
						
		<p:dialog id="alterarDialogo" header="#{msg.partidaAlterar}" widgetVar="alterarDlg" showEffect="slide" appendToBody="true" modal="true" >
			<h:form id="formAlterar" prependId="false">
				<h:panelGrid id="apresentaAlterarPartida" columns="2" cellpadding="5">
					<h:outputLabel for="nomeA" value="#{msg.partidaNome}: " />
					<h:inputText id="nomeA" value="#{partidaMB.partida.nome}" size="35" 
					required="true" requiredMessage="#{msg.partidaNomeReq}"/>
					
					<h:outputLabel for="dataA" value="#{msg.partidaData}: " />
					<p:calendar pattern="dd-MM-yyyy" id="dataA" value="#{partidaMB.partida.data}" 
					required="true" requiredMessage="#{msg.partidaDataReq}"/> 
		
					<h:outputLabel for="ligaA" value="#{msg.partidaLiga}: " />
					<h:selectOneMenu id="ligaA" value="#{partidaMB.ligaSelecionado}" 
					required="true" requiredMessage="#{msg.partidaLigaReq}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaLiga}" />
		                <f:ajax listener="#{partidaMB.getListaJogo}" render="jogoA" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="jogoA" value="#{msg.partidaJogo}: " />
					<h:selectOneMenu id="jogoA" value="#{partidaMB.jogoSelecionado}" 
					required="true" requiredMessage="#{msg.partidaJogoReq}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogo}" />
		            </h:selectOneMenu>

					<h:outputLabel for="jogador1A" value="#{msg.partidaJogador1}: " />
					<h:selectOneMenu id="jogador1A" value="#{partidaMB.jogador_1Selecionado}" 
					required="true" requiredMessage="#{msg.partidaJ1Req}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogador1}" />
		            </h:selectOneMenu>
					
					<h:outputLabel for="jogador2A" value="#{msg.partidaJogador2}: " />
					<h:selectOneMenu id="jogador2A" value="#{partidaMB.jogador_2Selecionado}" 
					required="true" requiredMessage="#{msg.partidaJ2Req}">  
		                <f:selectItem itemLabel="Select One" itemValue="" />
		                <f:selectItems value="#{partidaMB.listaJogador2}" />
		            </h:selectOneMenu>
		
					<h:outputLabel for="pontos1A" value="#{msg.partidaJogador1pts}: " />
					<h:inputText id="pontos1A" value="#{partidaMB.partida.pontos_jogador1}" size="35" />
					
					<h:outputLabel for="pontos2A" value="#{msg.partidaJogador2pts}: " />
					<h:inputText id="pontos2A" value="#{partidaMB.partida.pontos_jogador2}" size="35" />
				</h:panelGrid>
	
				<p:commandButton value="#{msg.partidaAlterar}"
								oncomplete="handleSubmitRequest(xhr, status, args, 'alterarDialogo', 'formAlterar');"
								icon="ui-icon-pencil"
								actionListener="#{partidaMB.alterarPartida}"
								onclick="alterarDlg.hide()"
								update=":formPrincipal:datatablePartida, :msg" />
			</h:form>									
		</p:dialog>
			
	    <p:confirmDialog message="#{msg.partidaMsg}" id="dlgExcluir" header="Excluir" severity="alert" widgetVar="confirmacaoExcluir" appendToBody="true" >
	        <p:outputPanel id="partidaDisplay" style="display:block;margin-top:10px;">  
	        	#{partidaMB.partida.nome}
                <br />               
                <h:outputText value="#{partidaMB.partida.data}">
                	<f:convertDateTime type="date" pattern="dd-MM-yyyy"/>
                </h:outputText>
                <br />
                #{partidaMB.partida.liga.nome}
                <br />
                #{partidaMB.partida.jogo.nome}
                <br />
                #{partidaMB.partida.jogador1.nome}
                <br />
                #{partidaMB.partida.jogador2.nome}
                <br />
                #{partidaMB.partida.pontos_jogador1}
                <br />
                #{partidaMB.partida.pontos_jogador2} 
	        	<br /><br />
			</p:outputPanel>
          
            <p:commandButton update=":formPrincipal:datatablePartida, :msg" value="#{msg.partidaOK}" oncomplete="confirmacaoExcluir.hide()"
                actionListener="#{partidaMB.excluirPartida}"  />
            <p:commandLink value="#{msg.partidaCancelar}" onclick="confirmacaoExcluir.hide()" />
         
		</p:confirmDialog>
			
<script type="text/javascript">  
function handleSubmitRequest(xhr, status, args, dialogName, formName) {  
	dialog = jQuery('#' + dialogName);
	
	if(args.validationFailed) {  
	    dialog.effect("shake", { times:3 }, 100);  
	} else {
		if(formName == "formIncluir") {
			clearForm(formName);
		} else {
			dialog.hide();			
		}
	}  
}
  
function clearForm(formName){
    jQuery('#' + formName).each(function(){
		this.reset();
	});
}
</script> 		
	</ui:define>
</ui:composition>
